Alteryxにおけるデータ入出力の際とIn-DBを使った際とでのODBC接続の設定の違い
こんにちは、小澤です。
Alteryxで分析したいデータがデータベースにある時、みなさんだったらどうしますか? そんな時、やり方は2種類あります。
- Input Dataツールでデータを取得してローカルで分析する
- In-DBツールを使ってデータベース上で分析する
どちらを利用するにしても、それぞれの特徴があるためデータ量や分析したい内容に応じて使い分けることになります。
さて、今回はそんな2種類のやり方でのデータベースへの接続設定の違いについてみていきたいと思います。
Input Dataツールで取得する場合
まずは、分析はローカル環境で行うパターンについてみていきましょう。 なお、ここではInput Dataツールという話で進めていますが、Output Dataツールでデータベースに出力する際も同様です。
Input Dataツールでデータベースに接続する際には、ODBCドライバを利用します。 そのため、利用するデータベースにあわせたドライバをあらかじめ実行環境にインストールしておく必要があります。
接続する際には以下のような情報が必要となります。
- 利用するODBCドライバ名
- 接続先URL
- ポート
- ユーザ
- パスワード
- データベース名
これらの情報を毎回入力するのは手間なので、DSN(Data Source Name)という形であらかじめ登録しておいて、利用する際にはそのDSNの値を指定することも可能です。 雰囲気としては、あらかじめこれらの情報を記述したファイルを作成しておき、利用する際はファイル名のみを指定するみたいな感じだと想像してください。 DSNはAlteryxでの操作というよりは、処理を実行する環境のWindows側であらかじめ設定しておいたものをAlteryxが利用するというような感じになります。
また、Alteryx Serverが利用可能な環境であれば、そちらに接続先情報を登録しておいてそれを利用するといったことも可能です。 この方法を利用するメリットとしては、DSNを利用する場合はAlteryxを実行する環境全てであらかじめ登録を行っておく必要がありますが、 Alteryx ServerのData Connectionsを利用すると個別の設定は必要ありません(実際にデータを取得するのは実行環境となるので各PCにODBCドライバはインストールしておく必要があります)。 ただし、Alteryx Serverに登録された情報はAlteryxからしか利用できないので、他からもデータベースに接続する可能性がある場合は気をつけましょう。
このように、Alteryx Designerが動く環境自体は接続先情報を直接持つわけではなく、他で設定された情報を利用する、という動きになっています。
In-DBを使ってデータベース上で処理を実行するときの設定
さて、続いてはIn-DBの際の設定についてみてみましょう。 こちらもInput Dataツールと同様、接続にはODBCドライバを利用します。
ここからが先ほどと異なる点となりますが、In-DBでの接続先情報はAlteryx側で設定ファイルとして保持しています。
この設定ファイルの中身はXMLなので、誰でも簡単に確認できます。
In-DBでは、このようにツールに直接ODBC接続の設定を記述するわけではなく、設定ファイルを見に行って接続する仕組みになっています。 そのため、ドライバがインストールしてあったり、共通のDSNの設定がしてあるだけではワークフローを他の環境に移してもそのまま実行はできません。
通常この設定ファイルは %APPDATA\Alteryx\Engine\UserConnections.xml
に記載されています。
このケースのように他の環境とも接続情報をシェアしたい場合は、特定の接続情報をファイルとして個別に出力しておくことが可能です。
設定をファイルとして保存するには Options > Advanced Options > Manage In-DB Connections を選択して以下の画面を開きます。
「Connection Type」で「File」を選択すると、以下のように「Connections」からの選択だった部分がファイル名を入れるフォームに変わります。
ここで適当なパスを選択して、ファイルを保存します。 In-DBの接続先設定ファイルは「.indbc」という拡張子になります。 そのほかの設定は通常のIn-DBでの接続情報設定などと同様になります。
設定ファイルを利用してIn-DBを利用するには「Open File Connection」を選択してファイルを選びます。
その後は通常と同様、取得するデータを選択する画面が表示されるのでここから先は同じプロセスとなります。
この作成された「.indbc」ファイルをワークフローと一緒に共有することで、他の環境でもワークフロー内の設定を変更することなく接続がIn-DBを使った処理の実行が可能となります。
この際、注意点としては、Input Dataツールなどと同様、.indbcファイルはフルパスでの指定となっています。 これを解消するには、相対パスに置き換えるか、アセットとして同梱するかしてください。
また、Alteryx Serverにワークフローをアップロードして共有する場合も同様です。 デフォルトのコネクションリストから選択するワークフローになっていると、アセットに含めることができないので、この場合必ず.indbcファイルを作成して、アセットに含めてアップロードするというプロセスが必要になります。
おわりに
こんかいは、In-DBを使った際の接続情報設定について解説しました。 「なんか複雑だなー」と思った方もいるかもしれませんが、In-DBの設定にはこのほかにもIn-DBだからこその固有の設定なども含まれているようなので、ぜひ慣れて使いこなしてください。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。